<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>软件测试</title>
</head>
<body>
	<h1>软件测试</h1>
	<p><strong>目的</strong>：质检</p>
	
	<h2>计算机组成</h2>
	<ul>
		<li><strong>硬件系统</strong></li>
		<ul>
			<li>cpu</li>
			<li>显卡</li>
			<li>网卡</li>
			<li>声卡</li>
			<li>硬盘</li>
			<li>内存条</li>
			
		  <li>输入设备</li>
			<ul>
				<li>鼠标</li>		
				<li>键盘</li>		
				<li>麦克风</li>
			</ul>
		</ul>
		<ul>
			<li>输出设备</li>
			<ul>
				<li>显示屏</li>
				<li>喇叭</li>
				<li></li>
			</ul>
		</ul>
		<li><strong>软件系统</strong></li>
		<ul>
			<li>系统软件</li>
			<li>应用软件</li>
		</ul>
	</ul>

<h3>软件架构</h3>
<h4>C/S</h4>
<ul>
	<li>client/server:是客户端和服务器。如：qq，微信</li>
</ul>
<h4>B/S</h4>
<ul>
	<li>Browser/server:网页个服务器。如：淘宝，京东</li>
</ul>

<h3>osi模型和tcp5模型关系</h3>
<img src="./img/osi.PNG" >
<ol>
	<h5>OSI参考模型</h5>
	<li>应用层</li>
	<li>表示层</li>
	<li>会话层</li>
	<li>传输层</li>
	<li>网络层</li>
	<li>数据链路层</li>
	<li>物理层</li>
</ol>

<ol>
	<h5>TCP、IP模型</h5>
	<li>应用层</li>
	<li>传输层</li>
	<li>网络层</li>
	<li>数据链路层</li>
	<li>物理层</li>
</ol>

<div>
	<h4>IP 地址</h4>
	<ul>
		<li>第1类地址：1-126</li>
		<li>第2类地址：128-191</li>
		<li>第3类地址：192-223</li>
	</ul>
	<h4>保留IP地址：只能在局域网中用</h4>
	<ul>
		<li>10</li>
		<li>127</li>
		<li>172.16.0.0 ---  172.31.255.255</li>
		<li>192.168.*.*</li>
	</ul>
</div>

<div>
	<h3>常用dos命令</h3>
	<ul>
		<li>arp  -a :ip地址和对应的物理地址</li>
		<ul>
			<li>网管需要把物理地址绑定在路由器上，电脑才能上网</li>
		</ul>
		<li>ipconfig  -all: 查看ip地址</li>
		<li>dir    : 目录，查看目录</li>
		<li>md ：  创建文件</li>
		<li>rd    :删除文件夹。目录里不能有东西</li>
		<li>copy  复制文件</li>
		<li>move  移动文件、或者叫剪切</li>
		<li>del   删除文件，如果del后面跟的是目录，会将目录里的文件都删除掉</li>
		
	</ul>
</div>

<div>
	<h3>软件测试的质量模型</h3>
	<h4>六大特点：</h4>
	<ul>
		<li>功能性：</li>
		<ul>
			<li>提供明确和隐含的功能。比如：银行，必须能取钱，存钱，开账户。隐含的条件：提供笔，纸，至少说明什么时候上班</li>
		</ul>
		<li>可靠性</li>
		<ul>
			<li>一、设备最好不要出现故障</li>
			<li>二、设备出现故障，不影响主要功能和业务</li>
			<li>三、影响主要功能和业务，能尽快恢复并且定位</li>
		</ul>
		<li>易用性</li>
		<ul>
			<li>易懂，易学，易用，好看</li>
		</ul>
		<li>效率</li>
		<ul>
			<li>产品性能相对较好</li>
		</ul>
		<li>可维持性：可更新</li>
		<li>可移植性（可以跨不同的平台。）</li>
	</ul>
	
</div>


<div>
	<h3>软件质量模型保证（SQA）</h3>
	<ul>
		<span><strong>目的：</strong></span>
		<li>软件制作过程对于领导是可见的。</li>
		<li>他是一套方法和计划向领导保证</li>
	</ul>
	<ol>
		<span><strong>目标：</strong></span>
		<li>有计划的进行</li>
		<li>遵循了步骤和需求</li>
		<li>及时通知对应人员</li>
		<li>高层能了解到项目内部</li>
		<li>软件质量要测试工作来保证</li>
		
	</ol>
</div>



<div>
	<h2>软件测试基本流程</h2>
	<ol>
		<li>需求分析</li>
		<li>编写测试用例（测什么，怎么测）</li>
		<li>评审设计用例</li>
		<li>搭建测试环境</li>
		<li>等待开发提交测试包</li>
		<li>部署测试包</li>
		<li>冒烟测试（对软件的基本功能进行测试）</li>
		<li>执行测试用例</li>
		<li>BUG跟踪处理（回归测试）</li>
		<li>N轮后附和需求</li>
		<li>测试结束</li>
	</ol>
</div>


<div>
	<h2>软件测试分类</h2>
	
</div>


<div>
	<ol>
		<li><h3>按照阶段</h3></li>
		<div>
			<ol>
				
				<li>单元测试</li>
				<li>集成测试</li>
				<li>系统测试</li>
			</ol>
		</div>
		
		
		<li><h3>代码覆盖</h3></li>
		<div>
			<ol>
				<li>白盒测试</li>
				<li>黑盒测试</li>
					<div>
						<ol>
							<li><strong>功能测试</strong></li>
								<div>
									<ol>
										<li>界面测试</li>
										<li>逻辑功能测试</li>
										<li>易用性测试</li>
										<li>安装测试</li>
										<li>兼容性测试</li>
									</ol>
								</div>
							<li><strong>性能测试</strong></li>
								<div>
									<ol>
										<li>一般性能测试</li>
										<li>稳定性测试</li>
										<li>负载测试</li>
										<li>压力测试</li>
									</ol>
								</div>
						</ol>
					</div>
			</ol>
		</div>
		
		
		
		<li><h3>是否运行</h3></li>
			<div>
				<ol>
					<li>静态测试</li>
					<li>动态测试</li>
				</ol>
			</div>
		<li><h3>其他</h3></li>
			<div>
				<ol>
					<li>冒烟测试</li>
					<li>回归测试</li>
					<li>验收测试</li>
						<div>
							<ol>
								<li>α测试：内部版本，可能存在的bug较多，不建议用户安装使用</li>
								<li>β测试：公测版本，对所有的客户开放。通过客户的反馈再修改细节</li>
								<li>γ测试：与正式版相差无几</li>
							</ol>
						</div>
					<li>随机测试</li>
				</ol>
			</div>
		<li><h3>是否自动化</h3></li>
			<div>
				<ul>
					<li>手工测试</li>
					<li>自动化测试</li>
				</ul>
			</div>
	</ol>
</div>
	
<div id="talble">
	<table border="1" cellspacing="2" cellpadding="2">
		<tr><th>用例编号</th> 	<th>等价类划分</th> 		<th>输入框1</th>			<th>输入框2/th>		<th>预估结果</th> 	<th>是否BUG</th>  </tr>
		<tr><td>1</td>			<td>有效</td>			<td>1到100整数</td>		<td>5</td>			<td>正确</td>		<td>是</td></tr>
		<tr><td>2</td>			<td>有效</td>			<td>5</td>				<td>1到100整数</td>	<td>3</td>			<td>是</td></tr>
		<tr><td>3</td>			<td>无效</td>			<td>空</td>		<td>空</td>			<td>3</td>			<td>是</td></tr>
		<tr><td>4</td>			<td>无效</td>			<td>1到100整数</td>		<td>5</td>			<td>3</td>			<td>是</td></tr>
		<tr><td>5</td>			<td>无效</td>			<td>1到100整数</td>		<td>5</td>			<td>3</td>			<td>是</td></tr>
		<tr><td>6</td>			<td>无效</td>			<td>1到100整数</td>		<td>5</td>			<td>3</td>			<td>是</td></tr>
		
	</table>
</div>	

<div id="qqTable">
	<table border="1" cellspacing="4" cellpadding="4">
		<tr><th>案例：测试QQ登陆账号</th></tr>
		<tr><th>需求：账号要求6-10之间的整数</th></tr>
		<tr><th>用例编号</th>   <th>等价类划分</th>  <th>账号框</th>  <th>密码框</th></tr>
		<tr><td>Data</td></tr>
	</table>	
</div>


<div>
	<h3>界面测试</h3>
	<ol>
		<li>界面字样是否正确（是否有错别字）</li>
		<li>界面字体是否统一</li>
		<li>排版是否统一，合理</li>
		<li>重点和热销产品是否突出</li>
		<li>页面上的所有链接是否有提示（tittle属性有没有）</li>
		<li>已经点击过的链接和没有点击过的链接是否有区分</li>
		<li>页面上的二维码是否可以扫</li>
		<li>交互界面是否方便</li>
	</ol>
</div>
	
	
<div>
	<h3>功能测试</h3>
	<ol>
		<li>搜索框不输入任何东西，能否搜索。</li>
		<li>输入特殊字符能否正常搜出正常的物品</li>
		<li>界面上的链接能不能正常的跳转</li>
		<li>是否能通过扫码进行登录淘宝</li>
		<li>是否支持按回车键执行搜索</li>
		<li>在搜索框输入空格，能不能进行搜索</li>
		<li>搜索框输入错误时，能不能删除重新输入</li>
		<li>搜索结果能不能有序排列</li>
		<li>多条搜索相同的历史记录能不能只保留一条</li>
	</ol>
</div>
	
	
<div>
	<h3>性能测试</h3>
	<ol>
		<li>点击搜索相应的时间是多久，分网络好跟不好两种情况</li>
		<li>搜索的时间是否符合258原则</li>
		<li>对淘宝不断的进行加压测试，不断</li>
	</ol>
</div>

<div>
	<h3>场景法</h3>
	<p>1、模拟用户的使用流程，不考虑边界值这些。测试主要的业务有没有出现错误。跟冒烟测试相似</p>
	<p>主要用来测试基本流（正确的流程）和 备选流（一些错误的流程）</p>
	<p>一般要补充一些异常情况</p>
</div>


<div>
	<h3>流程法</h3>
	<p>由场景法分流出来的方法，主要用于白盒测试中，尽量的覆盖所有的路径</p>
</div>

<div>
	<h3>软件缺陷</h3>
	<ol>
		<li>未达到产品说明书要求的规格，比如，1+1 要等于2  却得到1</li>
		<li>用户觉得不好用</li>
		<li>超出产品规定的业务</li>
		<li>应该具备的功能没有</li>
	</ol>
</div>


<div>
	<h3>软件缺陷的状态</h3>
	<ol>
		<li>提交  commited ：bug已经提交</li>
		<li>open  处于打开状态，还没有修复</li>
		<li>拒绝 reject   开发不认为是一种缺陷</li>
		<li>修复，已经修复</li>
		<li>关闭  close  经过开发修复后，由测试回归测试，并且确认已经ok</li>
		<li>退出 later  确定好时间或者版本号</li>
	</ol>
</div>

<div>
	<h3>缺陷分类</h3>
	<ul>
		<li>系统缺陷</li>
		<li>数据缺陷</li>
		<li>数据库缺陷</li>
		<li>接口缺陷</li>
		<li>功能缺陷</li>
		<li>安全性缺陷</li>
		<li>兼容性缺陷</li>
		<li>性能缺陷</li>
		<li>界面缺陷</li>
		<li>建议</li>
	</ul>
	<ol>
		<h4>安全性缺陷</h4>
		<li>用户权限无法实现</li>
		<li>超时链接错误</li>
		<li>访问控制错误</li>
		<li>加密错误</li>
	</ol>
	<ol>
		<h4>界面缺陷</h4>
		<li>删除未给出提示</li>
		<li>打印内容，格式错误</li>
		<li>操作界面不规范</li>
	</ol>
</div>

<div>
	<h3>缺陷报告</h3>
	<table border="1">
		<tr><th>缺陷报告</th></tr>
		<tr><td>缺陷ID</td> <td>22211</td> <td>测试日期</td><td>2020.2.20</td></tr>
		<tr><td>测试人员</td><td>lion</td><td>BUG类型</td><td>功能缺陷</td></tr>
		<tr><td>功能模块</td><td>首页banner图</td><td>环境</td><td>IE7</td></tr>
		<tr><td>严重程度</td><td>2</td><td>优先级</td><td>2</td></tr>
		<tr><td>概要描述</td><td>banner左侧文字出现换行</td></tr>
		<tr><td>重现步骤：</td><td>1、打开首页   2、查看bander左侧文字    结果：出现文字换行情况，应该是一行显示</td></tr>
		<tr><td>解决者</td><td>程序员：李阳</td><td>解决日期</td><td>2030，3,3</td></tr>
		<tr><td>解决方案</td><td>可能是css中没有设置浮动导致的</td></tr>
	</table>
	
	<h2>数据库</h2>
	<h3>名词解释：</h3>
	<h3>DB</h3>
	<p>database：数据库，存储数据的仓库。它保存一系列数据的组织</p>
	<h3>DBMS：</h3>
	<p>数据管理系统，database management system，数据库由他创建生成</p>
	<h3>SQL：</h3>
	<p>数据库管理系统</p>
	
	<h3>数据库特点</h3>
	<p>1、将数据放到表中</p>
	<p>2、一个数据库可以有多个表，每个表都有一个自己的名字，用来标识自己，表名具有唯一性</p>
</div>

<div>
	<h2>显示在那个表 </h2>
	<pre>
		<p>
		mysql>select database();
		+------------+
		| database() |
		+------------+
		| mysql      |
		+------------+
		</p>
		2、创建表
		
	</pre>
	<p>创建表：create table pan(id int,nane char);</p>
	<p>查看表内容</p>
	<pre>mysql&gt; desc pan_value;
	+-------+---------+------+-----+---------+-------+
	| Field | Type    | Null | Key | Default | Extra |
	+-------+---------+------+-----+---------+-------+
	| id    | int     | YES  |     | NULL    |       |
	| name  | char(1) | YES  |     | NULL    |       |
	| tel   | char(1) | YES  |     | NULL    |       |
	+-------+---------+------+-----+---------+-------+
	</pre>
	
</div>
</body>
</html>
